home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / SNDLIST- / SNDINIT.C < prev    next >
C/C++ Source or Header  |  1988-11-10  |  1KB  |  45 lines

  1. /*
  2.     This INIT will show it's ICN# and then plays all
  3.     'snd ' resources from its own resource fork.
  4.  
  5.     Set the project to "code resource" of type 'INIT'.
  6.     Use ResEdit to put the CODE resource into the "Sound" cdev
  7.     file in the system folder. Clear the "no init" bit.
  8.     Copy the 'snd ' resources you want into the "Sound" cdev.
  9.  
  10.     Note: this works only for System 6.0 or later, if you have
  11.     a Mac Plus.
  12. */
  13.  
  14. #include <ResourceMgr.h>
  15. #include <SoundMgr.h>
  16.  
  17. #define ICON    -4064        /* Resource id of 'ICN#' */
  18.  
  19. #define HLock(h)    asm {                    \
  20.                         MOVE.L h,A0            \
  21.                         _HLock                \
  22.                     }
  23.  
  24. main()
  25. {
  26.     register Handle h;
  27.     register int i, n;
  28.     
  29.     /* Note: all registers are saved/restored by the system */
  30.  
  31.     asm {
  32.         MOVE.L A0,A4        /* A4 used for global and static data */
  33.         _RecoverHandle
  34.         _HLock                /* Make sure our CODE is locked */
  35.     }
  36.     ShowINIT(ICON);            /* INIT notification */
  37.     n = Count1Resources(soundListRsrc);
  38.     for (i = 1; i <= n; i++)
  39.         if (h = Get1IndResource(soundListRsrc, i)) {
  40.             HLock(h);
  41.             SndPlay(0L, h, FALSE);
  42.             ReleaseResource(h);
  43.         }
  44. }
  45.